package com.shop.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shop.mapper.Pms_Attr_Group_Mapper;
import com.shop.pojo.pms.Pms_Attr_Group;
import com.shop.service.Pms_Attr_Group_Service;
import com.shop.utils.LayuiUtils;
import com.shop.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class Pms_Attr_Group_ServiceImpl implements Pms_Attr_Group_Service {
    @Autowired
    private Pms_Attr_Group_Mapper pms_attr_group_mapper;

    /*
     * @Description 查找全部的分组，带有分页
     * @param
     * @return com.shop.utils.LayuiUtils<com.shop.pojo.pms.Pms_Attr_Group>
     * @author liusupeng
     * @date 2020/10/27 17:36
     */
    @Override
    public LayuiUtils<Pms_Attr_Group> PMS_ATTR_GROUP_LIST(Integer page) {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        LayuiUtils<Pms_Attr_Group> layuiUtils = new LayuiUtils<>();
        Page<Pms_Attr_Group> page1 = new Page<>(page, 10);
        Page<Pms_Attr_Group> page2 = pms_attr_group_mapper.selectPage(page1, queryWrapper);
        layuiUtils.setData(page2.getRecords());
        layuiUtils.setCount(page2.getTotal());
        return layuiUtils;
    }

    /*
     * @Description  根据商品分类id和分页的页码来查询当前商品分类下的全部分组信息
     * @param page
     * @param catelogId
     * @return com.shop.utils.LayuiUtils<com.shop.pojo.pms.Pms_Attr_Group>
     * @author liusupeng
     * @date 2020/10/27 22:32
     */
    @Override
    public LayuiUtils<Pms_Attr_Group> selectByCataId(Integer page, Integer catalogId) {
        LayuiUtils<Pms_Attr_Group> layuiUtils = new LayuiUtils<>();
        Page<Pms_Attr_Group> page1 = new Page<>(page, 10);
        Page<Pms_Attr_Group> pms_attr_groupPage = pms_attr_group_mapper.selectPageGroup(page1, catalogId);
        layuiUtils.setData(pms_attr_groupPage.getRecords());
        layuiUtils.setCount(pms_attr_groupPage.getTotal());
        return layuiUtils;
    }

    /*
     * @Description  根据分组id来进行删除分组
     * @param groupId
     * @return com.shop.utils.R
     * 成功返回200，不成功返回500
     * @author liusupeng
     * @date 2020/10/27 23:19
     */
    @Override
    public R deleteGroupById(Integer groupId) {
        int i = pms_attr_group_mapper.deleteById(groupId);

        if (i > 0) {
            R r1 = new R(200, "success");
            return r1;
        } else {
            return R.error(500, "请稍后再试");
        }


    }

    /*
     * @Description  分页查询当前没有分配分类的全部分组信息
     * @param page
     * @return com.shop.utils.LayuiUtils<com.shop.pojo.pms.Pms_Attr_Group>
     * @author liusupeng
     * @date 2020/10/27 23:17
     */
    @Override
    public LayuiUtils<Pms_Attr_Group> selectNotPageGroup(Integer page) {
        LayuiUtils<Pms_Attr_Group> layuiUtils = new LayuiUtils<>();
        Page<Pms_Attr_Group> page1 = new Page<>(page, 10);
        Page<Pms_Attr_Group> pms_attr_groupPage = pms_attr_group_mapper.selectNotPageGroup(page1);
        layuiUtils.setData(pms_attr_groupPage.getRecords());
        layuiUtils.setCount(pms_attr_groupPage.getTotal());
        return layuiUtils;
    }

    /*
     * @Description 根据分组ID来对分组名称进行修改
     * @param pms_attr_group
     * @return com.shop.utils.R
     * @author liusupeng
     * @date 2020/10/28 18:50
     */
    @Override
    public R updateGroupNameById(Pms_Attr_Group pms_attr_group) {

        int i = pms_attr_group_mapper.updateById(pms_attr_group);
        if (i > 0) {

            return R.success();
        } else {
            return R.error(500, "请稍后再试");
        }
    }

    /*
     * @Description 查询全部分组信息
     * @param
     * @return com.shop.utils.R
     * @author liusupeng
     * @date 2020/10/28 19:43
     */
    @Override
    public R PMS_ATTR_GROUP_LIST() {


        R r1 = new R();
        r1.data(pms_attr_group_mapper.selectList(new QueryWrapper<>()));
        return r1;
    }

    /*
     * @Description 根据分类ID来查询当前分类下的全部分组信息
     * @param catelogId
     * @return java.util.List<com.shop.pojo.pms.Pms_Attr_Group>
     * @author liusupeng
     * @date 2020/11/1 14:59
     */
    @Override
    public List<Pms_Attr_Group> findAllGroupByCatelogId(Long catelogId) {

        return pms_attr_group_mapper.findAllGroupByCatelogId(catelogId);
    }



    /***
     * 分组的新增
     * @param pms_attr_group
     * @return
     */
    @Override
    public R insertGroupBy(Pms_Attr_Group pms_attr_group) {
        QueryWrapper<Pms_Attr_Group> query = new QueryWrapper<>();
        if (pms_attr_group.getAttr_group_name() != null){
            query.eq("attr_group_name",pms_attr_group.getAttr_group_name());
        }


        //判断分组名称是否重复的添加
        List<Pms_Attr_Group> pms_attr_groups = pms_attr_group_mapper.selectList(query);
        if (pms_attr_groups.size() == 0) {
            int insert = pms_attr_group_mapper.insert(pms_attr_group);
            if (insert > 0) {
                return R.success();
            }
            return R.error(500, "添加失败");
        }
        return R.error(500, "分组名称重复");
    }









}